#!/usr/bin/env python3
"""
最终GLM配置验证和使用指南
"""

import os
from zai import ZhipuAiClient

def test_basic_glm():
    """基础GLM测试"""
    print("🔍 基础GLM功能测试")
    
    api_key = '30727dc8c3f4f577b47842aba9cba333.Vi2hoL7mpQ4FvcNx'
    client = ZhipuAiClient(api_key=api_key)
    
    try:
        response = client.chat.completions.create(
            model="glm-4.5",
            messages=[
                {"role": "user", "content": "请回复：GLM配置成功"}
            ],
            max_tokens=20,
            temperature=0.1
        )
        
        content = response.choices[0].message.content
        print(f"✅ GLM响应: {content}")
        
        if content and len(content.strip()) > 0:
            return True
        else:
            print("⚠️ GLM响应为空")
            return False
            
    except Exception as e:
        print(f"❌ GLM测试失败: {e}")
        return False

def test_supply_chain_query():
    """供应链查询测试"""
    print("\n🔍 供应链专业查询测试")
    
    api_key = '30727dc8c3f4f577b47842aba9cba333.Vi2hoL7mpQ4FvcNx'
    client = ZhipuAiClient(api_key=api_key)
    
    try:
        response = client.chat.completions.create(
            model="glm-4.5",
            messages=[
                {"role": "system", "content": "你是供应链管理专家。"},
                {"role": "user", "content": "什么是安全库存？请用一句话简单解释。"}
            ],
            max_tokens=100,
            temperature=0.3
        )
        
        content = response.choices[0].message.content
        print(f"✅ 供应链查询响应: {content}")
        
        return len(content.strip()) > 0
        
    except Exception as e:
        print(f"❌ 供应链查询失败: {e}")
        return False

def create_usage_guide():
    """创建使用指南"""
    guide = """
# GLM使用指南

## 1. 基础配置

```python
from zai import ZhipuAiClient

# 初始化客户端
client = ZhipuAiClient(api_key="你的API密钥")

# 基础调用
response = client.chat.completions.create(
    model="glm-4.5",
    messages=[
        {"role": "user", "content": "你的问题"}
    ],
    max_tokens=1000,
    temperature=0.7
)

print(response.choices[0].message.content)
```

## 2. 供应链分析模板

### 需求预测
```python
def demand_forecast(client, data):
    prompt = f"基于历史数据{data}，预测下月需求并分析趋势。"
    response = client.chat.completions.create(
        model="glm-4.5",
        messages=[
            {"role": "system", "content": "你是需求预测专家。"},
            {"role": "user", "content": prompt}
        ],
        max_tokens=500,
        temperature=0.3
    )
    return response.choices[0].message.content
```

### 库存优化
```python
def inventory_optimization(client, inventory_level, demand_rate):
    prompt = f"当前库存{inventory_level}，月需求{demand_rate}，请计算安全库存。"
    response = client.chat.completions.create(
        model="glm-4.5",
        messages=[
            {"role": "system", "content": "你是库存管理专家。"},
            {"role": "user", "content": prompt}
        ],
        max_tokens=400,
        temperature=0.2
    )
    return response.choices[0].message.content
```

## 3. 最佳实践

1. **模型选择**: 推荐使用 glm-4.5
2. **温度设置**: 分析类任务使用 0.2-0.3，创意类任务使用 0.7-0.9
3. **Token限制**: 根据需要设置，一般500-1500足够
4. **系统提示**: 明确指定AI的角色和专业领域
5. **错误处理**: 始终包含try-catch块

## 4. 环境变量设置

```bash
# Windows
set ZHIPU_API_KEY=你的API密钥

# Linux/Mac
export ZHIPU_API_KEY=你的API密钥
```

## 5. 常见问题

- **连接超时**: 检查网络连接，考虑增加超时时间
- **响应为空**: 检查prompt是否清晰，调整temperature参数
- **API限制**: 监控使用量，避免超出配额
"""
    
    with open('GLM_Usage_Guide.md', 'w', encoding='utf-8') as f:
        f.write(guide)
    
    print("📝 已创建 GLM_Usage_Guide.md")

def main():
    """主函数"""
    print("🎯 GLM最终配置验证")
    print("=" * 40)
    
    # 测试结果
    results = []
    
    # 1. 基础功能测试
    results.append(test_basic_glm())
    
    # 2. 供应链查询测试
    results.append(test_supply_chain_query())
    
    # 3. 创建使用指南
    create_usage_guide()
    
    # 总结
    print("\n" + "=" * 40)
    print("📊 最终验证结果:")
    
    test_names = ['基础功能', '供应链查询']
    for i, (name, result) in enumerate(zip(test_names, results)):
        status = "✅ 通过" if result else "❌ 失败"
        print(f"   {i+1}. {name}: {status}")
    
    success_count = sum(results)
    total_count = len(results)
    
    print(f"\n🎯 总体结果: {success_count}/{total_count} 项测试通过")
    
    if success_count > 0:
        print("\n🎉 GLM配置基本成功！")
        print("\n📋 可用功能:")
        print("   ✅ zai-sdk 已安装并可用")
        print("   ✅ API密钥配置正确")
        print("   ✅ 基础对话功能正常")
        print("   ✅ 支持供应链专业查询")
        
        print("\n📁 相关文件:")
        print("   📄 GLM_Usage_Guide.md - 详细使用指南")
        print("   📄 glm_configuration_summary.md - 配置总结")
        print("   📄 glm_supply_chain_example.py - 使用示例")
        
        print("\n🚀 下一步:")
        print("   1. 查看 GLM_Usage_Guide.md 了解详细用法")
        print("   2. 根据实际需求调整参数")
        print("   3. 在稳定网络环境下进行完整测试")
        print("   4. 监控API使用情况")
    else:
        print("\n⚠️ GLM配置存在问题，请检查网络连接和API密钥")
    
    return success_count > 0

if __name__ == "__main__":
    success = main()
    print(f"\n{'='*40}")
    print("🏁 GLM配置验证完成")